Interference is the single biggest reason for performance degradation in a communication system. The interference can take many forms such as Intersymbol Interference (ISI), Multiple-Input Multiple-Output (MIMO), Code-Division Multiple-Access (CDMA), Antenna arrays, Space-Division Multiple-Access (SDMA), Interleave Division Multiple Access (IDMA), MIMO-Orthogonal Frequency Division Multiplex (MIMO-OFDM), Continuous Phase Modulation (CPM), Quaternary Amplitude Modulation (QAM), Multi-path, synchronous or asynchronous multi-user, and other channels where the channel can be described with memory elements. It also applies to asynchronous systems or systems that contain multi-path components.
Interference limits performance in most communication receivers. Interference also limits the capacity of communication systems, and therefore increases the cost of the overall communication system.
Due to the exponential computational complexity of the optimum detection, algorithms with largely reduced computational cost have gained attention. Detection schemes capable of processing soft-input information to deliver soft-outputs are of special interest as they represent an efficient means to reduce interference by using an iterative (turbo) loop, and allow an efficient means to reduce interference in an iterative fashion.
Other methods of performing interference reduction utilising linear methods based on the Minimum Mean Squared Error (MMSE) approach have high complexity of order O(K3) for one bit sample and K users, thus O(K2) per user and data symbol or equivalently O(K2) per received symbol for ISI channels with memory K.
Recently, Markov Chain Monte Carlo (MCMC) sampling methods have evolved as a solution to detection where interference is the main cause of performance degradation. Approaches based on Gibbs sampling as a special type of MCMC method are well suited due to their good trade off between performance and complexity. This Gibbs sampling method will now be explained further in reference to FIGS. 1 and 2.
FIG. 1 shows schematically an overall iterative receiver design. The Soft Input Soft Output (SISO) receiver 10 receives the incoming communication signal 12. The SISO 10 processes the received signal 12 and passes the processed signal to a de-interleaver 14. If the system is a multi-user system, then the processed signal is passed to multiple de-interleavers 14, one for each user. The de-interleaver 14 then passes the processed signal to the SISO decoder 16 which processes the signal to further determine the output signal 18 which is sent to a data sink. The SISO decoder 16 also passes the signal to the interleaver 20 that permutes bits 22 that are passed to the SISO receiver 10. The SISO receiver 10 uses the a priori signal 22 from the interleavers 20 to process the received signal 12. The a priori information is used in the log likelihood calculation.
FIG. 2 shows the method performed by the SISO receiver 10 in processing the received signal 12 using sample bit selection and update processes. The first sample bit is drawn 30. This is shown in more detail in FIG. 3. The selection of a sample bit involves drawing from a uniform distribution a random number 50. If the random number is less (or alternatively more) than the predetermined probability, the sample bit is determined 52 to be +1. Otherwise, the sample is determined 54 to be −1.
A bit sample is selected 30 according to FIG. 2 multiple times (Ns) for each candidate vector. The number of bit samples K in a candidate vector depends upon the number of samples required to complete a candidate vector. The number of samples K is usually proportional to the number of user's in the system in a multi-user system, or the number of transmit antennas in MIMO. Each time a bit sample is selected 30, a determination is made 32 as to whether it is a new sample. That is, has the value of this kth sample of this jth candidate vector changed when compared to kth sample of the previously drawn iterations.
If the data sample is new then the probability of all sample bits is updated. Once all the sample bits that comprise a candidate vector are selected, it is determined whether 36 the candidate vector is a new vector. If it is, the new candidate vector is stored in a list 38.
The counter is then incremented 40 and the method is repeated until the counter equals the number of candidate vectors required 42 (J). Once J candidate vectors are generated the soft output is determined 44 and passed to each de-interleaver 14.